package com.liuqi.aiagent.service;

import com.liuqi.openai.chain.OpenAiChain;

/**
 * Agent Chat 管理器
 *
 * @author liuqi
 * @date 2025/7/18
 **/
public interface AgentChatManager {

    /**
     * 通过<code>agentId</code>和<code>用户名称</code>从缓存中查询 OpenAiChain
     * 如果缓存中没有, 则进行创建
     *
     * 每个用户维护一个 OpenAiChain
     *
     * @param agentName  agentName
     * @param username  用户名称
     * @return
     */
    OpenAiChain<String> findOpenAiChain(String agentName, String username);

    /**
     * 移除AgentName缓存
     *
     * @param agentName
     */
    void removeCache(String agentName);

    /**
     * 查找当前缓存的Agent的ID
     *
     * @param agentName
     * @param username
     * @return
     */
    Integer findAgentId(String agentName, String username);

    /**
     * 查找当前缓存的Agent的模型ID
     *
     * @param agentName
     * @param username
     * @return
     */
    Integer findModelId(String agentName, String username);

    /**
     * 查找当前缓存的Agent的模型Name
     *
     * @param agentName
     * @param username
     * @return
     */
    String findModelName(String agentName, String username);

}
